1. Field of the Invention
The present invention is generally related to offloading cable modem termination system (CMTS) software by using hardware to filter unsolicited grant service (UGS) extended headers to ensure adequate bandwidth is being provided to a data provider during a UGS flow.
2. Background Art
The importance to the modern economy of rapid data access and exchange cannot be overstated. This explains the exponentially increasing popularity of the data access and exchange via cable networks (including coaxial cable or Hybrid fiber coaxial cable), the Internet, intranets, wireless networks, satellites and so forth (i.e., communication mediums). Rapid data access and exchange is partly dependent upon how efficiently bandwidth is allocated to a data provider in order for the data provider to transfer the requested data to a user via one of the communication mediums mentioned above.
One very desirable solution for rapid data access and exchange is via cable networks and cable modems. Cable modems provide asynchronous communications on cable networks. In general, a user connects a cable modem to the TV outlet for his or her cable TV, and the cable TV operator connects a cable modem termination system (“CMTS”) in the operator's headend. The CMTS is a central device for connecting the cable network to a data network like the Internet. The CMTS is a central distribution point for a cable system. Data flows “downstream” from the CMTS to the cable modem (i.e., downstream communication). Alternatively, data flows “upstream” from the cable modem to the CMTS (i.e., upstream communication).
A common cable modem standard today is the Data Over Cable Service Interface Specification (“DOCSIS”). DOCSIS defines technical specifications for both cable modems and CMTS.
In general, a cable modem forwards or provides data via asynchronous communications on cable networks. The cable modem receives data from a user that needs to be transferred via a cable network. For many types of data, in order for the cable modem to transfer the data via a cable network it must request that the CMTS grant to it the necessary bandwidth. Alternatively, when voice traffic is involved, the CMTS automatically grants bandwidth to the cable modem (referred to as unsolicited grant service (UGS)). One reason for this automatic grant of bandwidth is that voice traffic (or traffic data) cannot tolerate delays in its transfer. Therefore, since constant voice traffic is so deterministic (i.e., constant bit rate), the CMTS can generate bandwidth grants at a certain periodicity without the need of bandwidth requests from the data provider (e.g., cable modem).
With UGS, the cable modem calculates the grant size of bandwidth and the periodicity of that grant size of bandwidth that the CMTS needs to supply in order to adequately service a voice call. If the cable modem is supporting more than one user (i.e., phone line) then the cable modem needs to inform the CMTS to supply twice the amount of requested bandwidth with the same periodicity in order to adequately support two voice calls, and so forth. The CMTS may end up not providing enough bandwidth requests to the cable modem if the internal clocks of the CMTS and cable modem differ. For example, the cable modem may require 64 bytes of bandwidth every 3.9999 milliseconds in order to adequately service a voice call. The CMTS may, due to its internal clock being different from the internal clock of the cable modem, may end up granting 64 bytes of bandwidth every 4.0001 milliseconds. Here, the cable modem may end up queuing up data packets that are not getting serviced in a timely manner.
To ensure that the CMTS is adequately providing enough bandwidth to the cable modem for the entire voice call (or current UGS flow), DOCSIS provides a mechanism by which the CMTS software examines consecutive voice packets (i.e., the UGS extended headers of the voice packets) to determine if there is an indication that extra bandwidth grants are needed by the cable modem to service the voice call (i.e., voice packets are backing up in the cable modem queue). Also, once the CMTS starts supplying extra bandwidth grants, the CMTS needs to know when the cable modem no longer requires extra bandwidth grants (i.e., voice packets are not backing up in the cable modem queue). In order to determine when extra bandwidth requests are needed and when the extra bandwidth requests are no longer needed, the CMTS software examines the UGS extended headers of two consecutive voice packets. A change in the UGS extended header indicates a change in the number of grants needed. When there is no change required in the UGS flow, the CMTS software expends unnecessary CPU cycles comparing consecutive voice packets.